package com.itheima.dao;

import com.itheima.pojo.Role;

import java.util.List;
import java.util.List;
import java.util.Map;
import java.util.Set;

public interface RoleDao {
    public Set<Role> findByUserId(Integer userId);
    public List<Role> findAll();
    public List<Integer> findroleIdsByUserId(Integer userId);


    /**
     * 根据条件查看角色信息 返回list集合
     *
     * @param queryString
     * @return
     */
    public List<Role> findPage(String queryString);

    /**
     * 设置角色和权限的关联关系
     *
     * @param map
     */
    void setRoleAndPermissionRelation(Map map);


    /**
     * 设置角色和菜单的关联关系
     *
     * @param map
     */
    void setRoleAndMenuRelation(Map map);

    /**
     * 添加角色基本信息
     *
     * @param role
     */
    void add(Role role);

    /**
     * 删除角色和权限的关联关系
     * @param roleId
     */
    void deleteRoleAndPermissionRelation(Integer roleId);

    /**
     * 删除角色和菜单的关联关系
     * @param roleId
     */
    void deleteRoleAndMenuRelation(Integer roleId);

    /**
     * 根绝角色id查看用户角色
     * @param id
     * @return
     */
    List findAllUserIdByRoleId(Integer id);

    /**
     * 根据id删除角色信息
     * @param id
     */
    void delete(Integer id);

    /**
     * 根绝id查看角色信息
     * @param id
     * @return
     */
    Role findById(Integer id);

    /**
     * 修改角色信息
     * @param role
     */
    void update(Role role);

    /**
     * 根据id查看权限信息id的集合
     * @param id
     * @return
     */
    List findPermissionIds(Integer id);

    /**
     * 根据id查看菜单id信息的集合
     * @param id
     * @return
     */
    List findMenuIdsByRoleID(Integer id);
}
